package com.ruoyi.order.api.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.order.api.domain.vo.ErpSellerOrderProductVo;
import com.ruoyi.ae.api.domain.AeStoreChildOrder;
import com.ruoyi.ae.api.domain.AeStoreOrderReceiptAddress;
import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 卖家订单对象 erp_seller_order
 *
 * @author erp
 * @date 2023-03-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("erp_seller_order")
public class ErpSellerOrder extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 卖家登录ID
     */
    private String sellerLoginId;
    /**
     * 卖家操作人员的登录id
     */
    private String sellerOperatorLoginId;
    /**
     * 卖家全名
     */
    private String sellerSignerFullname;
    /**
     * 买家登录id
     */
    private String buyerLoginId;
    /**
     * 订单ID
     */
    private Long orderId;
    /**
     * 订单类型
     */
    private String bizType;
    /**
     * 买家全名
     */
    private String buyerSignerFullname;
    /**
     * 订单创建时间
     */
    private String gmtCreate;
    /**
     * 订单支付时间;和订单详情中gmtPaysuccess字段意义相同。
     */
    private String gmtPayTime;

    /**
     * 最终发货时间
     */
    private String leftEndGoodTime;
    /**
     * 订单最后更新时间
     */
    private String gmtUpdate;
    /**
     * 订单详情链接
     */
    private String orderDetailUrl;
    /**
     * 订单状态
     */
    private String orderStatus;
    /**
     * 付款金额
     */
    private String payAmount;
    /**
     * 付款币种
     */
    private String payCurrencyCode;
    /**
     * 是否为增量订单;用户只要查看订单，增量订单则变为否，否则一直为是
     */
    private String incrementalOrder;

    /**
     * 订单在ERP内部的状态
     */
    private String erpInnerOrderStatus;
    /**
     * 在线上发货时，选择物流方案
     */
    private String warehouseCarrierService;

    /**
     * 乐观锁
     */
    private String revision;
    /**
     * 创建人
     */
    private String createBy;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新人
     */
    private String updateBy;
    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 订单流程代码
     */
    private String orderProcessFlag;

    @TableField(exist = false)
    private List<ErpSellerOrderProductVo> sellerOrderProductVoList;

    /**
     * 订单商品List
     */
    @TableField(exist = false)
    private List<ErpSellerOrderProduct> sellerOrderProductList;

//    @TableField(exist = false)
//    private List<AeStoreChildOrder> storeChildOrderList;

    @TableField(exist = false)
    private List<ErpSellerChildOrder> sellerChildOrderList;

    /**
     * 子订单List
     */
    @TableField(exist = false)
    private List<AeStoreChildOrder> aeStoreChildOrderList;

    @TableField(exist = false)
    private AeStoreOrderReceiptAddress aeStoreOrderReceiptAddress;


    /**
     * 店铺币种
     */
    @TableField(exist = false)
    private String quotationCurrency;
    /**
     * 预估利润
     */
    @TableField(exist = false)
    private String estimatedProfit = null;
    /**
     * 交易佣金比例
     */
    @TableField(exist = false)
    private String escrowFeeRate  = null;
    /**
     * 联盟佣金比例
     */
    @TableField(exist = false)
    private String afflicateFeeRate = null ;
    /**
     * 订单信息
     */
    @TableField(exist = false)
    private String statusIntro;

    @TableField(exist = false)
    private String consignmentNo;


    private String shipmentsSolutionType;

    private Long headUserId;

    @TableField(exist = false)
    private String logisticsType;
    @TableField(exist = false)
    private Integer isWarehouse;
    @TableField(exist = false)
    private String logisticsProof;
    @TableField(exist = false)
    private String realityLogisticsPrice;
    @TableField(exist = false)
    private String disputeImg;
    @TableField(exist = false)
    private String disputeAmount;
    @TableField(exist = false)
    private Integer disputeResult;
    @TableField(exist = false)
    private String fine;
}
